const { app, BrowserWindow, ipcMain } = require("electron/main");
const path = require("node:path");
const express = require("express");
const bodyParser = require("body-parser");
const cors = require("cors");

function initQiankunServer() {
  const server = express();
  // 启用 CORS
  server.use(cors());
  // 解析 JSON 请求体
  server.use(bodyParser.json());
  server.use(bodyParser.urlencoded({ extended: true }));
  server.use(express.static(path.join(__dirname, "/apps/base/dist/")));
  // 设置路由（根据需要添加）
  server.get("/", (req, res) => {
    res.sendFile(path.join(__dirname + "/apps/base/dist/", "index.html"));
  });
  // 启动服务器并监听端口（根据需要更改端口号）
  server.listen(8080, () => {
    console.log("Server started on port 8080,http://localhost:8080/");
  });

  const serverllzy = express();
  // 启用 CORS
  serverllzy.use(cors());
  // 解析 JSON 请求体
  serverllzy.use(bodyParser.json());
  serverllzy.use(bodyParser.urlencoded({ extended: true }));
  serverllzy.use(express.static(path.join(__dirname, "/apps/main/dist/")));
  // 设置路由（根据需要添加）
  serverllzy.get("/", (req, res) => {
    res.sendFile(path.join(__dirname + "/apps/main/dist/", "index.html"));
  });
  // 启动服务器并监听端口（根据需要更改端口号）
  serverllzy.listen(8081, () => {
    console.log("Server started on port 8082,http://localhost:8082/");
  });

  const serverxtgl = express();
  // 启用 CORS
  serverxtgl.use(cors());
  // 解析 JSON 请求体
  serverxtgl.use(bodyParser.json());
  serverxtgl.use(bodyParser.urlencoded({ extended: true }));
  serverxtgl.use(express.static(path.join(__dirname, "/apps/system/dist/")));
  // 设置路由（根据需要添加）
  serverxtgl.get("/", (req, res) => {
    res.sendFile(path.join(__dirname + "/apps/system/dist/", "index.html"));
  });
  // 启动服务器并监听端口（根据需要更改端口号）
  serverxtgl.listen(8082, () => {
    console.log("Server started on port 8081,http://localhost:8081/");
  });
}

initQiankunServer();

const createWindow = () => {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false,
      // preload: path.join(__dirname, "preload.js"),
    },
  });

  // win.loadFile("index.html");
  win.loadURL("http://localhost:8080");
  // 打开开发者工具
  win.webContents.openDevTools();
};

app.whenReady().then(() => {
  createWindow();
  ipcMain.handle("ping", () => "pong");
  app.on("activate", () => {
    if (BrowserWindow.getAllWindows().length === 0) createWindow();
  });
});

app.on("window-all-closed", () => {
  if (process.platform !== "darwin") app.quit();
});
